/*
 * Exploder
 * 
 * Tero Pyylampi (218437), Jussi Tuurinkoski (211594)
 *
 * Abstract base class for all the different bombs in the game
 */

#ifndef GAMEBOMB_H
#define GAMEBOMB_H

#include "../GamePhysicObject.h"
#include "../../../../Common.h"

class GameCamera;

class GameBomb : public GamePhysicObject {
public:
	// default constructor
	GameBomb( b2World *world, cocos2d::CCLayer *layer, GameCamera *camera );
	// default destructor
	virtual ~GameBomb();

	// update function
	virtual void update( cocos2d::ccTime dt ) = 0;

	// set new color for object sprites
	virtual void setObjectColor( cocos2d::ccColor3B c );

	// grab bomb
	virtual void grabBomb();
	// release bomb
	virtual void releaseBomb();

	// detonate bomb
	virtual void detonate() = 0;

	// get absolute screen position of the sprite
	virtual cocos2d::CCPoint getObjectScreenPosition();

protected:
	// game layer & camera pointers
	cocos2d::CCLayer *mGameLayer;
	GameCamera *mGameCamera;

	// sprites used in this bomb
	std::vector< cocos2d::CCSprite* > mSprites;
};

#endif